package com.bmd.backgroundmanger.service;

import com.bmd.backgroundmanger.entity.ExamPaper;
import com.bmd.backgroundmanger.entity.Question;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 试卷管理 服务类接口
 * </p>
 *
 * @author 刷题App
 * @since 2024-12-19
 */
public interface IExamPaperService extends IService<ExamPaper> {

    /**
     * 分页查询试卷列表
     */
    Map<String, Object> getPageData(int page, int size, String title, String status);

    /**
     * 创建试卷
     */
    boolean createPaper(ExamPaper examPaper);

    /**
     * 更新试卷
     */
    boolean updatePaper(ExamPaper examPaper);

    /**
     * 获取试卷详情（包含题目列表）
     */
    ExamPaper getPaperWithQuestions(Integer paperId);

    /**
     * 向试卷添加题目
     */
    boolean addQuestionToPaper(Integer paperId, Integer questionId, Integer score);

    /**
     * 批量向试卷添加题目
     */
    boolean addQuestionsToPaper(Integer paperId, List<Integer> questionIds);

    /**
     * 从试卷移除题目
     */
    boolean removeQuestionFromPaper(Integer paperId, Integer questionId);

    /**
     * 发布试卷
     */
    boolean publishPaper(Integer paperId);

    /**
     * 归档试卷
     */
    boolean archivePaper(Integer paperId);

    /**
     * 获取已发布的试卷列表
     */
    List<ExamPaper> getPublishedPapers();

    /**
     * 自动组卷（根据分类和难度等条件）
     */
    boolean autoComposePaper(Integer paperId, Integer categoryId, String difficultyLevel, Integer questionCount);

    /**
     * 调整试卷中题目的顺序
     */
    boolean adjustQuestionOrder(Integer paperId, List<Map<String, Integer>> orderList);
} 